The present invention relates generally to the field of network management, and more particularly to a software defined network service for modifying network flows based on network events.
Software-defined networking (SDN) is a computer networking approach that enables network service management through abstraction of lower-level functionality. This is done by decoupling the system that makes decisions about where traffic is sent (the control plane) from the underlying systems that forward network traffic to the selected destination (the data plane).
SDN requires some method for the control plane, which includes applications and performs software control of network activity, to communicate with the data plane, also known as the forwarding plane, which performs the actual distribution activity of network data packets. One such method involves an open standard protocol providing a means for server-based control of network packet delivery without requiring vendors to expose the internal workings of their network devices. OpenFlow is a communications protocol that provides an application programming interface (API) that gives a server-based controller access to the forwarding planes across a network of switches, routers, and access points (OpenFlow is a trademark of Open Networking Foundation non-profit corporation, OREGON U.S.A.). OpenFlow enables the control plane of an SDN network architecture to have a comprehensive view of the network configuration, and enables controllers to send instructions to OpenFlow (OF) devices that define the path of delivering data packets through the OF devices of the network. The separation of the control plane from the data plane allows for more sophisticated traffic management than is feasible using access control lists (ACLs) and routing protocols at the switch or router level.
The controller instruction to the OF device is received and results in generation of an entry of a flow in a data structure referred to as a flow table of the OF device. A flow is an instruction generated by services of an SDN server working in conjunction with an SDN controller to deliver the instructions to OF devices on how to forward data packets that are received. Each flow has two components, a match and a set of actions. Each match describes a set of fields that are compared with the corresponding fields in the data packet. Each field may have a specific value or a wildcard value. An OF rule with a specific set of field values, applies to any data packet received by the OF device having a matching set of field values in its header. The set of field values is referred to as a “pattern” and it represents a pattern of data traffic which are applied to matching data packets. SDN services are applications providing control plane functionality, and run in the context of the SDN controller. SDN services receive and accept configurations of the OF devices of the network, and translates the configuration into OpenFlow rules that are programmed, delivered and stored in flow tables of the OF devices. If the configuration input to the services were to change, the services compute a new set of OF rules, which are delivered and stored on the OF devices.